/**
 * @author ARCHADE & NLUTZ
 * @version 2
 */

import java.util.StringTokenizer;

public class BreuvageNoHerit extends Contrainte{
	
	private int id;
	private String nomBierre  ;
	private int idBrasserie=0;
	private String brasserie;
	private double tauxAlcool ;
	private String couleur ;
	private String provenance ;
	private String typeFerm ;
	private String fermentation ;
	private int idLieu=0;
	private String lieuOrgBreuvage ;
	private int anneeOrgBreuvage ;
	private String comDegustation ;
	private String comLibre ;
	
	public BreuvageNoHerit(){}
	
	public BreuvageNoHerit(String line, int id)
	{
		StringTokenizer token = new StringTokenizer(line,";\n");
	    	 
			this.id=id;
		
	    	 nomBierre=makeNull(token.nextToken())  ;
	    
	    	 
	    	 try{
	    	 	idBrasserie=Integer.parseInt(makeNull(token.nextToken()) ) ;
	  		}
	  		catch (Exception e) {
	  			idBrasserie=0;
	  		}
		 		
	 		 UseFile<Object> uf=new UseFile<Object>(FILE_BRASSERIE);
	 		 brasserie=uf.getLine(idBrasserie);
	 	 
	    	 
	    	 try{
	    	 tauxAlcool=Double.valueOf( makeNull(token.nextToken()) ); // possibilit� de rajouter un .doubleValue() [� tester ]
	    	 } catch (Exception e) {
	    		
	    		 setTauxAlcool(0);
	    	 }
	    	
	    	 
	    	 couleur=makeNull(token.nextToken()) ;
	    	
	    	 
	    	 provenance=makeNull(token.nextToken()) ;
	    	
	    	 typeFerm=makeNull(token.nextToken());
 	    	
	    	 
 	    	 fermentation=makeNull(token.nextToken());
	  
	    	 
	    	 try{
	    	 	idLieu=Integer.parseInt(makeNull(token.nextToken()) ) ;
	  		}
	  		catch (Exception e) {
	  			idLieu=0;
	  		}
	 		
	 		 UseFile<Object> uflieu=new UseFile<Object>(FILE_LIEUORIGINE);
	 		 lieuOrgBreuvage=uflieu.getLine(idLieu);
	 	 	
	        
	    	 try{
	    		 anneeOrgBreuvage=Integer.parseInt(makeNull(token.nextToken()) ) ;
	    	 } 
	    	 catch (Exception e) {
	    		
	    		 anneeOrgBreuvage=0;
	    	 }
	    	 
	    	
	         
	         comDegustation=makeNull(token.nextToken()) ;
	       
	         comLibre=makeNull(token.nextToken()) ;
	        
	}

	//Sets

	public void setID (int id)
	{
		this.id=id  ;
	}
	
	public void setTauxAlcool(double d) {
		if(d<0) System.out.println(d +"negatif");
		else if (d>Double.MAX_VALUE) System.out.println(d +"nombre trop grand");
		else this.tauxAlcool = d;
	}
	
	public void setBrasserie(String brasserie) {
		if(checkExists(FILE_BRASSERIE,brasserie) || brasserie.compareTo("")!= 0)
				this.brasserie=brasserie;
				else this.brasserie=null;
	}
	
	public void setNomBierre(String nomBierre) {
		if (nomBierre.compareTo("")==0)
		this.nomBierre="Inconnue" ;
		else this.nomBierre = nomBierre;
	}
	
	public void setCouleur(String couleur) {
		if (couleur.compareTo("")==0)
			this.couleur="Inconnue" ;
		else this.couleur = couleur;
	}
	
	public void setProvenance(String provenance) {
		if (provenance.compareTo("")==0)
			this.provenance="Inconnue" ;
		else this.provenance = provenance;
	}
	
	public void setTypeFerm(String typeFerm) {
		if (typeFerm.compareTo("")==0)
			this.typeFerm="Inconnue" ;
		else this.typeFerm = typeFerm;
	}
	
	public void setFermentation(String fermentation) {
		if (fermentation.compareTo("")==0)
			this.fermentation="Inconnue" ;
		else this.fermentation = fermentation;
	}
	
	public void setComDegustation(String comDegustation) {
		if (comDegustation.compareTo("")==0)
			this.comDegustation="Pas de commentaire" ;
		else this.comDegustation = comDegustation;
	}
	
	public void setComLibre(String comLibre) {
		if (comLibre.compareTo("")==0)
			this.comLibre="Pas de commentaire" ;
		else this.comLibre = comLibre;
	}
	
	public void setAnneeOrgBreuvage(int anneeOrgBreuvage) {
		if (anneeOrgBreuvage<0) System.out.println(anneeOrgBreuvage +"Negatif interdit");
		else if (anneeOrgBreuvage>Integer.MAX_VALUE) System.out.println(anneeOrgBreuvage +"Nombre trop grand");
		this.anneeOrgBreuvage = anneeOrgBreuvage;
	}
	
	public void setLieuOrgBreuvage(String lieuOrgBreuvage) {
		if(checkExists(FILE_LIEUORIGINE,lieuOrgBreuvage) || lieuOrgBreuvage.compareTo("")!=0 )
			this.lieuOrgBreuvage=lieuOrgBreuvage;
			else this.lieuOrgBreuvage=null;
	}
	
	//Gets
	
	public int getID(){
		return id;
	}
	
	public double getTauxAlcool() {
		return tauxAlcool;
	}
	
	public String getBrasserie() {
		return brasserie;
	}
	
	public String getNomBierre() {
		return nomBierre;
	}

	public String getCouleur() {
		return couleur;
	}

	public String getProvenance() {
		return provenance;
	}

	public String getTypeFerm() {
		return typeFerm;
	}

	public String getFermentation() {
		return fermentation;
	}

	public String getLieuOrgBreuvage() {
		return lieuOrgBreuvage;
	}

	public int getAnneeOrgBreuvage() {
		return anneeOrgBreuvage;
	}

	public String getComDegustation() {
		return comDegustation;
	}

	public String getComLibre() {
		return comLibre;
	}
	
	public String toString()
	{
		return id+" : "+nomBierre+";"+brasserie+";"+tauxAlcool+";"+couleur+";"+provenance+";"+typeFerm+";"+fermentation+";"
		+lieuOrgBreuvage+";"+anneeOrgBreuvage+";"+comDegustation+";"+comLibre+";";
	}
	
	public String toFile()
	{
		return nomBierre+";"+idBrasserie+";"+tauxAlcool+";"+couleur+";"+provenance+";"+typeFerm+";"+fermentation+";"
		+idLieu+";"+anneeOrgBreuvage+";"+comDegustation+";"+comLibre+";";
	}
	
	public String toAffiche(){ 
		return "ID : "+id+"\nNom :"+nomBierre+"\nBrasserie : "+brasserie+"\nTaux Alcool :"+
	tauxAlcool+"\nCouleur :"+couleur+"\nProvenance :"+provenance +"\nType de Fermentation :"+typeFerm+"\nFermentation :"+
				fermentation+"\nlieu Origine du Breuvage :"+lieuOrgBreuvage+"\nAnnee Origine du Breuvage :"+anneeOrgBreuvage +
				"\nCommentaire de degustation : "+comDegustation+"\nCommentaire libre : "+comLibre+"\n"; 
		}
	
}

